Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

571
Visualizações
La ejecución de una biblioteca JS empaquetada en un paquete web con el sistema de módulos "umd" en Nodejs arroja un error: "self" no está definido

Recientemente, he estado desarrollando una biblioteca de JavaScript y ahora quiero publicarla en npm. Luego aprendí que tengo que usar un empaquetador de paquetes. Así que comencé a aprender webpack y seguí su guía Creación de una biblioteca de los documentos.

En su guía, sugirieron usar el tipo de módulo umd para admitir todos los sistemas de módulos, así que usé "umd". Pero cuando traté de ejecutar (a través de la importación ) el archivo de paquete generado en Node.js , arroja una excepción que dice " self está definido" . Luego abrí el archivo incluido y descubrí que hay una variable llamada self pero no sé cuál es su propósito.

En pocas palabras, probé el tipo de módulo commonjs y commonjs2 y publiqué un paquete de prueba y lo probé tanto en el entorno de reacción como en el de nodo y funcionó perfectamente. Lamentablemente, no funcionó en el entorno del navegador con la etiqueta <script> . Ahora mi pregunta es ¿qué tipo de módulo debo usar?

Aquí está mi webpack.config.js

 const path = require("path"); module.exports = { mode: "production", entry: "./src/index.js", output: { path: path.resolve(__dirname, "dist"), filename: "index.js", library: { type: "commonjs", // umd, commonjs2, .... }, }, };

Aquí está la estructura de mi proyecto.

 |- /dist |- /src |- package.json |- webpack.config.json

Versiones de paquetes web:

 "webpack": "^5.53.0" "webpack-cli": "^4.8.0"

Gracias por adelantado. Aprecio mucho su tiempo en StackOverflow <3.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Después de perder mucho tiempo, encontré la respuesta en un problema de github de webpack.

Puedo usar library.type: "umd" pero solo tengo que agregar lo siguiente en la configuración de mi paquete web.

 module.exports = { output: { globalObject: 'this' // This line was missing } }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda